﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TrackSystem.Entities.Dtos.Logic;
using TrackSystem.Entities.Dtos.Loop;
using TrackSystem.Entities.Models;
using TrackSystem.Entities.RequestFeatures;

namespace TrackSystem.Contracts
{
    public interface ILoopRepository : IRepository<LoopTable, int>
    {
        PagedList<LoopTable> GetPagedLoops(RequestParameter parameter);

        Task<LoopDto> GetSingle(int id);

        Task<ApiResult<LoopDto>> InsertLoopAsync(LoopTable table);

        Task<ApiResult<LoopDto>> UpdateLoopAsync(LoopTable table);

        Task<ApiResult<LoopDto>> DeleteLoopAsync(int id);
    }
}
